package cn.zyl.common.redis.command;

import cn.zyl.common.redis.util.MiniSafeEncoderTool;

/**
 * RedisCommands接口说明: 接口指定一组基本Redis的操作
 *
 * @author wsz
 * @version v1.0
 * @date 2020-08-07
 */
public interface MiniRedisCommands {
    /** 符号：下划线*/
    String TAR_STR = "_";
    /** 符号：双下划线*/
    String TAR__STR = "__";
    /** 字符串：空*/
    String EMPTY_STR = "";
    /** 字符串：空格*/
    String SPACE_STR = " ";
    /**
     * 返回命令字符串的字节数组
     * @return 字节数组
     */
    byte[] getRaw();
    /**
     * 字符串转字节数组，将符号_移除
     * @param name 命令字符串（含特殊字符_)
     * @return 字节数组
     */
    default byte[] encode(String name){
        name = name.contains(TAR__STR) ? name.replace(TAR__STR,SPACE_STR) : name;
        name = name.contains(TAR_STR) ? name.replace(TAR_STR,EMPTY_STR) : name;
        return MiniSafeEncoderTool.encode( name );
    }
}
